<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
//    求阶乘
//    console.log(getJC(10));
//
//    function getJC(num){
//        var sumJC = 1;
//        for(var i=1;i<=num;i++){
//            sumJC *= i;
//        }
//        return sumJC;
//    }

//    求1!+2!+3!+....+n!（函数嵌套）
    //求阶乘的和

//    console.log(getSumJC(4));
//
//    function getSumJC(number){
//        var sum = 0;
//        for(var i=1;i<=number;i++){
//            sum += getJC(i);//求阶乘
//        }
//        return sum;
//    }


//    判断一个数是否是素数(质数)
    //思路：除了自身和1以外，不能被其他数整除。
    //注意点：
    //1.必须用for循环实现
    //2.判断是否是素数，所以她的返回值应该是true或者false。
    //3.如果num%i===0了，那么一定不是素数。只有出了1和自身以外所有的数都不能整除，那么才能说她是素数。

    console.log(isPrime(3));

//    function isPrime(num){
//        //除了自身和1以外，不能被其他数整除。
//        for(var i=2;i<num;i++){
//            if(num%i===0){
//                return false;
//            }
//        }
//        return true;
//    }

    //拓展1（了解）
//    function isPrime(num){
//        //开闭原则
//        var bool = true;
//        //除了自身和1以外，不能被其他数整除。
//        for(var i=2;i<num;i++){
//            if(num%i===0){
//                bool = false;
//            }
//        }
//        return bool;
//    }

    //拓展2
    function isPrime(num){
        //除了自身和1以外，不能被其他数整除。
        for(var i=2;i<=num/2;i++){
            if(num%i===0){
                return false;
            }
        }
        return true;
    }

    //拓展3
//    function isPrime(num){
//        //除了自身和1以外，不能被其他数整除。
//        //判断一个数是不是指数，只需要判断到他的平方根，超过平方根在判断，无意义。
//        //因为一个数是由两个数相称得到的，一个变大，另外一个必然变小，那么判断到这个数的平方根就已经是极限了，不必超过平方根
//        for(var i=2;i<=Math.sqrt(num);i++){
//            if(num%i===0){
//                return false;
//            }
//        }
//        return true;
//    }

</script>
</body>
</html>